<script>
    (() => {
        const startTime = '2022-01-01'
        const endTime = '2022-09-01'

        //计算日期之间的月数
        const startM = new Date(startTime).getFullYear() * 12 + new Date(startTime).getMonth() + 1
        const endM = new Date(endTime).getFullYear() * 12 + new Date(endTime).getMonth() + 1
        const monthNum = endM - startM + 1
        // 在加1表示向上取整
        // 计算出每周的开始结束日期
        const dateList = []
        new Array(monthNum).fill('').forEach((_, i) => {
            const startT = i === 0
                ? startTime
                : new Date(
                    new Date(dateList[i - 1][1]).getFullYear(),
                    new Date(dateList[i - 1][1]).getMonth() + 1,
                    1
                )
            const endT = monthNum === i + 1
                ? endTime
                : new Date(
                    new Date(startT).getFullYear(),
                    new Date(startT).getMonth() + 1,
                    0
                )
            dateList.push(
                [startT, endT].map(d => {
                    return new Date(d).toLocaleDateString().replace(/\//g, '-').split(/\/|-/).map(v => +v >= 10 ? v : (0 + (+v + ''))).join('-')
                })
            );
        })

        console.log('月 dateList', dateList)

    })();

</script>